import Vue from 'vue'
import Vuex from 'vuex'
import mutations from './mutations'
import actions from './actions'
import getters from './getters'
import moduleA from './modules/moduleA'

// 1.安装插件
Vue.use(Vuex)




const state = {
  counter: 1000,
  students: [
    { id: 110, name: 'why', age: 19 },
    { id: 111, name: 'kobe', age: 24 },
    { id: 112, name: 'cyj', age: 20 },
    { id: 113, name: 'hc', age: 8 },
  ],
  info: {
    // 这些属性一旦被定义,都会被加入到响应式系统中
    // 而响应式系统会监听属性的变化,当属性发生变化时,会通知所有界面中用到该属性的地方,让界面发生刷新
    name: 'kobe',
    age: 40,
    height: 1.98
  },
  name: 'yuansheng'
}


// 2.创建对象
const store = new Vuex.Store({
  state,
  // 同步操作
  mutations,
  // 异步操作
  actions,
  // 类似计算属性
  getters,
  modules: {
    a: moduleA,
    b: {}
  }
})

// 3.导出
export default store